1. Field of the Invention
The invention relates to interactive television systems and more particularly to scheduling the delivery of application modules which are to be transmitted to an interactive television receiver.
2. Description of the Related Art
Interactive television systems are capable of displaying text and graphic images in addition to typical video program streams and are useful to provide a number of services and interactive applications to viewers. Interactive television systems are also capable of registering viewer actions in response to the audio and video information presented by the system. Features of interactive television include a variety of marketing, entertainment and educational capabilities such as allowing a user to interact with televised programs by ordering advertised products or services, competing against contestants in a game show, or requesting specialized information regarding particular programs.
Typically, a broadcast service provider generates an interactive television signal for transmission to a viewer""s television. The interactive television signal includes an interactive portion consisting of application code or control information, as well as an audio-video portion consisting of a television program. The broadcast service provider combines the audio-video and interactive portions into a single signal for transmission to a receiver connected to the user""s television. The signal is generally compressed prior to transmission and transmitted through typical broadcast channels, such as cable television (CATV) lines or direct satellite transmission systems.
The interactive functionality of the television is controlled by a set-top box connected to the television. The set-top box receives the signal transmitted by the broadcast service provider, separates the interactive portion from the audio-video portion and decompresses the respective portions of the signal. The set-top box uses the interactive information to, for example, execute an application while the audio-video information is transmitted to the television. The set-top box may combine the audio-video information with interactive graphics or audio generated by the interactive application prior to transmitting the information to the television. The interactive graphics and audio may present additional information to the viewer or may prompt the viewer for input. The set-top box may provide viewer input or other information to the broadcast service provider via a modem connection.
Interactive television applications may consist of a set of program modules. The entire set of modules is transmitted via the broadcast channel to the set-top box and the application is executed. The modules are packetized before they are transmitted to the receiving station. That is, the modules are broken down into smaller pieces of information which are then formatted for transmission over the broadcast channel or other transmission medium. The packets containing the pieces of a particular module may be transmitted consecutively, or they may be interspersed with packets containing portions of other modules. The packets arrive at a receiving station, where they are accumulated. When the last packet containing part of a particular module is received, that module is considered to have been received. Consequently, if it is necessary to deliver a module to a receiving station at a particular time, transmission of the module must begin at a time which is sufficiently early to allow transmission of all the packets containing portions of the module before the required delivery time.
The simple way of scheduling transmission of a module is to calculate (approximately) the time required to deliver the entire module and subtracting this from the scheduled delivery time. The duration of the transmission can be determined by dividing the size of the module by the bit rate at which its packets will be transmitted. This method scheduling the modules requires that the broadcast channel be reserved for this particular module and that all of the module""s packets be transmitted consecutively. This constraint considerably increases the difficulty of scheduling the potentially large number of modules which may be required for an application. If packets of more than one module must be sent at the same time, the method fails. It may also be difficult, or even impossible, to schedule modules for delivery at or near the same time. Further, the accuracy with which the delivery time of a single module can be scheduled using this method is limited because, although the start time of the transmission is known, the actual duration of the transmission can only be estimated. An improved mechanism for scheduling delivery of the modules would therefore be desirable.
The invention comprises a system and method for scheduling the delivery of packetized modules from a transmitting station to a receiving station. The invention provides a mechanism which allows flexibility in scheduling delivery of modules while maintaining accurate determination of delivery times. The transmitting station begins transmission of a given module""s packets at a time which is sufficiently early that all of the packets can be delivered before the module""s scheduled delivery time. Transmission of the last packet is held until the scheduled delivery time and then transmitted. Because the module is considered to have been received at the receiving station when the last packet is received, the module""s actual delivery time can be scheduled with the accuracy achievable with a single packet instead of the accuracy achievable when transmitting an entire module.
One embodiment of the invention comprises an interactive television system having a transmitting station (referred to herein as a broadcast station) which is coupled to one or more receiving stations by a broadcast channel. The broadcast station and receiving stations may also be coupled by point-to-point channels. The broadcast station is configured to format application modules or other data into packets (i.e., xe2x80x9cpacketizexe2x80x9d them) and transmit the packets to the receiving station via the broadcast or point-to-point channels. The receiving station includes a set-top box configured to receive and store the packets until the entire module has been received.
The broadcast station contains a scheduler. The scheduler is provided with predetermined times at which modules should be delivered from the broadcast station to the receiving station. In one embodiment, a transmission interval is also provided to the scheduler. The interval is at least as long and preferably greater than the time which would be required to transmit the module""s packets consecutively. The greater the transmission interval, the more flexibility the scheduler has to deliver the module""s packets. An additional amount of flexibility in scheduling can be achieved by allowing the delivery of the module to fall within a range around the delivery time. (This flexibility is particularly helpful in instances in which transmission of two or more modules is overlapped.) The scheduler calculates a transmission start time based on the scheduled delivery time and the transmission interval. The scheduler begins transmission of the module at the calculated start time and completes transmission of all but the last packet before the scheduled delivery time. At the scheduled delivery time, the last packet is transmitted. When this packet is received by the receiving station, the complete module has been received and the actual delivery time is established.
In an alternate embodiment, the transmission interval may also be calculated. If only a single module is to be transmitted, the transmission interval may be calculated by dividing the size of the module by the transmission bit rate. If there are several modules to be transmitted simultaneously, the transmission interval may be calculated by dividing the aggregate size of the modules by the transmission bit rate. If the transmission of several modules is to be overlapped, the transmission intervals required to deliver the modules individually may be increased by a multiplier to account for the sharing of the delivery channel by the modules. Any other suitable method may also be used to calculate the transmission interval. In any case, all of the packets, except the last packet, of each scheduled module are transmitted beginning at the respectively calculated start times. Since the delivery time of a module is the delivery time of the corresponding last packet, the delivery times of the modules can be scheduled with a much greater accuracy than in the prior art. The modules may also be transmitted so that their delivery times are nearly the same, even when the modules are very large.
In another embodiment, the scheduling and even the packetization of the modules may be done in advance. The producer of a module may deliver a pre-scheduled and pre-packetized version of the module to the broadcast station, which would then multiplex the module""s packets with other packets and transmit them according to the predetermined schedule. The other packets could contain audio, video, applications, or other types of information. The pre-scheduled, pre-packetized version of the module may itself include packets of audio, video, applications or other information. That is, these other packets may be included in the pre-scheduled, pre-packetized version of the module prior to delivery to the broadcast station.